import jieba
#首先要保证所打开的文件是utf-8编码，如果不是，可使用记事本另存为utf-8编码
#UTF-8是一种面向互联网传输出现的变长（1-4字节）的字符UNICODE编码，它兼容ASCII码，即英文字符1个字节，汉字占3个字节。
with open('唐诗三百首.txt', 'r', encoding='utf-8') as fr:
    txt=fr.read();
words=jieba.lcut(txt) #精准模式分析，返回一个列表类型
counts={}
for word in words:
    counts[word]=counts.get(word,0)+1 #有则加一，没有返回0+1（添加了新的键值对）
items=list(counts.items()) #返回所有键值对
items.sort(key=lambda x:x[1],reverse=True) #排序
for i in range(30): #打印前30个
    word,count=items[i]
    print("{0:<10}{1:>5}".format(word,count))  #word左对齐，count右对齐
